TableWriteToUnit Subroutine

private subroutine TableWriteToUnit(tab, iunit)

write a table on file taht is already open. Arguments: tab table to export iunit unit of file to whom write the table

Arguments

Type IntentOptional Attributes Name
type(Table), intent(in) :: tab
integer(kind=short), intent(in) :: iunit

Variables

Type Visibility Attributes Name Initial
integer(kind=long), public :: i
integer(kind=long), public :: j

Source Code

SUBROUTINE TableWriteToUnit &
( tab, iunit )

! Module used:
USE StringManipulation, ONLY: &
! imported routines:
StringCompact

IMPLICIT NONE

! Function arguments
! Scalar arguments with intent(in):
INTEGER (KIND = short),  INTENT (IN) :: iunit

! Type defined arguments with intent (in):
TYPE (Table), INTENT (IN) :: tab


!Local variables:
INTEGER (KIND = long)  :: i, j

!------------end of declaration------------------------------------------------

!write keyword for start table
WRITE(iunit,'(a)') 'Table Start'

!write title if exists
IF ( StringCompact ( tab % title ) /= '' ) THEN
  WRITE(iunit,'(a7)', ADVANCE = 'no') 'Title: ' 
  WRITE(iunit,'(a)') TRIM (tab % title)
END IF

!write id
WRITE(iunit,'(a4)', ADVANCE = 'no') 'Id: ' 
WRITE(iunit,'(a)') TRIM (tab % id)

!write column headers
WRITE(iunit,'(a9)', ADVANCE = 'no') 'Columns: '
DO i = 1, tab % noCols - 1
  WRITE(iunit,'(a1,a,a2)', ADVANCE = 'no') '[', TRIM (tab % col (i) % header ), '] ' 
END DO
WRITE(iunit,'(a1,a,a1)') '[', TRIM (tab % col (tab % noCols) % header ), ']' 

!write column unit
WRITE(iunit,'(a7)', ADVANCE = 'no') 'Units: '
DO i = 1, tab % noCols - 1
  WRITE(iunit,'(a1,a,a2)', ADVANCE = 'no') '[', TRIM (tab % col (i) % unit ), '] ' 
END DO
WRITE(iunit,'(a1,a,a1)') '[', TRIM (tab % col (tab % noCols) % unit ), ']'

!write content
DO i = 1, tab % noRows
  DO j = 1, tab % noCols - 1
    WRITE(iunit,'(a)', ADVANCE = 'no')  TRIM (tab % col (j) % row (i) ) // ' '
  END DO
  WRITE(iunit,'(a)') TRIM (tab % col (tab % noCols) % row (i) )
END DO

!write keyword for close table
WRITE(iunit,'(a)') 'Table End'

END SUBROUTINE TableWriteToUnit